home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / ASM-ARM / ARCH-ARC / SYSTEM.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  802b  |  48 lines

  1. /*
  2.  * linux/include/asm-arm/arch-arc/system.h
  3.  *
  4.  * Copyright (c) 1996 Russell King and Dave Gilbert
  5.  */
  6. #ifndef __ASM_ARCH_SYSTEM_H
  7. #define __ASM_ARCH_SYSTEM_H
  8.  
  9. #include <linux/config.h>
  10.  
  11. #ifdef CONFIG_ARCH_ARC
  12.  
  13. #define cliIF()                \
  14.     do {                \
  15.       unsigned long temp;        \
  16.       __asm__ __volatile__(        \
  17. "    mov    %0, pc\n"        \
  18. "    orr %0, %0, #0x0c000000\n"    \
  19. "    teqp    %0, #0\n"        \
  20.       : "=r" (temp)    \
  21.     : );    \
  22.   } while(0)
  23.  
  24. #endif
  25.  
  26. extern __inline__ void arch_reset(char mode)
  27. {
  28.     extern void ecard_reset(int card);
  29.  
  30.     /*
  31.      * Do any cleanups that the processor may require
  32.      */
  33.     processor._proc_fin();
  34.  
  35.     /*
  36.      * Reset all expansion cards.
  37.      */
  38.     ecard_reset(-1);
  39.  
  40.     /*
  41.      * copy branch instruction to reset location and call it
  42.      */
  43.     *(unsigned long *)0 = *(unsigned long *)0x03800000;
  44.     ((void(*)(void))0)();
  45. }
  46.  
  47. #endif
  48.